package com.cms.recursoshumanos.handler;

import java.util.Calendar;
import java.util.Date;

import com.cms.recursoshumanos.cache.ListaSolicitudCompraCache;
import com.cms.recursoshumanos.facade.ListaSolicitudCompraActivityFacade;
import com.cms.recursoshumanos.utilities.Tool;

public class ListaSolicitudCompraActivityHandler
{


	public String facadeListaSolicitudCompraScreen(String username, String password, Date date_selec)
	{
		Date fecha_inic = getValorInicFecha(date_selec);
		Date fecha_fin = getValorFinFecha(date_selec);
		ListaSolicitudCompraCache.getInstance().setFechaSeleccionada(fecha_inic);
		
		
		ListaSolicitudCompraActivityFacade lista_solicitud_compra_facade = new ListaSolicitudCompraActivityFacade(username,
																													password,
																													Tool.getInstance().parseDateToString(fecha_inic, 1), 
																													Tool.getInstance().parseDateToString(fecha_fin, 1));

		return lista_solicitud_compra_facade.enviarSolicitud();
		
	}
	public String refreshListadoSolicitudCompra (String username, String password, Date date_selec)
	{
		return this.facadeListaSolicitudCompraScreen(username, password, date_selec);
	}
	public String getListadoReservaciones (String username, String password, Date date_selec)
	{

		return this.facadeListaSolicitudCompraScreen(username, password, date_selec);

	}
	
	public Date getValorInicFecha(Date fecha)
	{
		Calendar cal1 = Calendar.getInstance();
		cal1.setTime(fecha);
		
		cal1.set(Calendar.HOUR_OF_DAY, 0);
		cal1.set(Calendar.MINUTE, 0);
		cal1.set(Calendar.SECOND, 0);
		
		cal1.set(Calendar.DAY_OF_MONTH, 1);
		
		return cal1.getTime();
		
	}
	public Date getValorFinFecha(Date fecha)
	{
		Calendar cal2 = Calendar.getInstance();
		cal2.setTime(fecha);
		
		cal2.set(Calendar.HOUR_OF_DAY, 0);
		cal2.set(Calendar.MINUTE, 0);
		cal2.set(Calendar.SECOND, 0);
		
		cal2.set(Calendar.DAY_OF_MONTH, 1);

		int month_new = cal2.get(Calendar.MONTH);
		cal2.set(Calendar.MONTH, month_new + 1); 
		
        cal2.set(Calendar.HOUR_OF_DAY, -1);  
        
        return cal2.getTime();
	}

	
}

